<?php

namespace Model;

class RegisterHandler{
	
	private $m_tablename = "login";
	private $m_db = NULL;
	private $m_messageExists = "RegisterMessageExists";
	
	public function __construct(Database $database) {
		$this->m_db = $database;
	}
	
	/**
	 * Kontrollerar om det inskriva användarnamnet redan finns i databasen
	 * @param String $username ett användarnamn som skall kontrolleras mot databasen
	 */
	public function DoesUserExist($username){
				
		$sql = "SELECT COUNT(*) FROM $this->m_tablename WHERE username = ?";
		
		$stmt = $this->m_db->Prepare($sql);
		
		$stmt->bind_param("s", $username);
		
		$this->m_db->Execute($stmt);
		
		if($this->m_db->SelectOne($stmt) == 1){
			return true;
		}
	}
	
	/**
	 * Lägger till den nya användaren i databasen
	 * @param String $username den nya användarens användarnamn
	 * @param String $password den nya användarens lösenord
	 */
	public function RegisterUser($username, $password){
				
		if (strlen($password) < 6) {
			return false;
		}
		
		$sql = "INSERT INTO $this->m_tablename (username, password) VALUES (?, ?)";
		
		$stmt = $this->m_db->Prepare($sql);
		
		$stmt->bind_param("ss", $username, $password);
		
		
		if($this->m_db->Execute($stmt)){
			$stmt->close();
			return true;
		}		
		$stmt->close();
		return false;		
	}	

	/**
	 * Sätter ett meddelande
	 * @param String $userMessage innehåller det meddelande som skall sättas
	 */
	public function SetUserMessage($userMessage)
	{
		$_SESSION[$this->m_messageExists] = $userMessage;
	}

	/**
	 * Kontrollerar om det finns något meddelande satt och returnerar det
	 */
	public function UserMessageExists()
	{
		if(isset($_SESSION[$this->m_messageExists])){
			return $_SESSION[$this->m_messageExists];
		}
		else{
			return false;
		}
	}

	/**
	 * Tar bort eventuellt meddelande ifrån sessionen
	 */
	public function ClearUserMessage()
	{
		if(isset($_SESSION[$this->m_messageExists])){
			unset($_SESSION[$this->m_messageExists]);
		}
	}

	/**
	 * Skickar användaren till index.php
	 */
	public function RedirectToSelf()
	{
		header('Location:/regolf/index.php');
	}
}